﻿#define  _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	switch (n % 3)
//	{
//	case 0:
//		printf("整除，余数为0\n");  
//		break;//跳出这个语句
//	case 1:
//		printf("余数是1\n");       
//		break;
//	case 2:
//		printf("余数是2\n");       
//		break;
//	}
//
//	return 0;
//}
//
//int main()
//{
//	int day=0;
//	scanf("%d", &day);
//
//	switch (day)
//	{
//		case 1:
//		case 2:
//		case 3:
//		case 4:
//		case 5:
//			printf("工作日\n");
//			break;
//		case 6:
//		case 7:
//			printf("休息⽇\n");
//			break;
//		default://一般是放在末尾，
//			printf("应该输入1-7的数字");
//			break;
//	}
//	return 0;
//}


//int main()
//
//{
//	int a = 1;
//	while(a<=10)
//	{
//			printf("美丽\n",a);//printf("1\n",a++);
//			a++;
//
//	}
//
//	return 0;
//}



//输⼊⼀个正的整数，逆序打印这个整数的每⼀位
//int main()
//{
//	int num = 0;
//	scanf("%d", &num);
//	while (num)
//	{
//		
//		printf("%d", num%10);
//		num /= 10;
//
//	}
//
//
//	return 0;
//}

//if(exp1; exp2;exp3)//真执行，假跳出
//表达式1⽤于循环变量的初始化,只被执行一次
//表达式2⽤于循环结束条件的判断
//表达式3⽤于循环变量的调整
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	for (n ; n ; n /= 10)
//	{
//		printf("%d", n % 10);
//
//	}
//	return 0;
//}

//int main()
//{
//	int i = 0;
//	int sum = 0;
//	for (i = 3; i <= 100; i += 3)
//	{
//		sum += i;
//		
//	}
//	printf("%d", sum);
//	return 0;
//}



//do while recycle
//循环体至少被执行一次
int main()
{
	int n = 0;
	scanf("%d", &n);
	int cnt = 0;
	do
	{
		cnt++;
		n = n / 10;
	} while (n);
	printf("%d\n", cnt);
	return 0;
 }